编译技术是计算机科学的一个重要领域，其的高级任务是将源语言翻译成机器代码。通常，这个任务分为两部分:前端和后端。前端主要处理源语言，而后端负责生成机器代码。\par

本章中，我们将讨论以下主题:\par

\begin{itemize}
	\item 编译器的构建块，您将了解编译器中的常用组件。
	\item 算术表达式语言，将向您介绍一种示例语言。您将学习如何使用语法来定义一种语言。
	\item 词法分析，将讨论如何实现语言的词法分析器。
	\item 语法分析，包括如何构造语法解析器。
	\item 语义分析，将了解如何实现语义检查。
	\item LLVM后端代码生成，将讨论如何与LLVM后端接口，以及如何将所有阶段聚合在一起，来创建一个完整的编译器。
\end{itemize}
